from PSPApp import *

def ScriptProperties():
    return {
        'Author': u'Guus Bosman',
        'Copyright': u'',
        'Description': u'Resizes, sharpens and add Year Overview texts',
        'Host': u'Paint Shop Pro Photo',
        'Host Version': u'12.50'
        }

def Do(Environment):
    # EnableOptimizedScriptUndo
    App.Do( Environment, 'EnableOptimizedScriptUndo', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((12,5,0),1)
                }
            })

    Result = App.Do( Environment, 'GetString', {
        'DefaultText': '2009',
        'DialogTitle': 'Year overview',
        'Prompt': 'For which year is this overview?',
        'MaxLength': 25,
        'GeneralSettings': {
            'ExecutionMode': App.Constants.ExecutionMode.Interactive
            }
        })

    myyear = Result[ 'EnteredText' ]
    
    if Result[ 'OKButton' ] == 0: raise SystemExit # Cancel Button

    # Resize
    App.Do( Environment, 'Resize', {
            'AspectRatio': 0.981763, 
            'CurrentDimensionUnits': App.Constants.UnitsOfMeasure.Pixels, 
            'CurrentResolutionUnits': App.Constants.ResolutionUnits.PixelsPerIn, 
            'Height': 250, 
            'MaintainAspectRatio': True, 
            'Resample': True, 
            'ResampleType': App.Constants.ResampleType.Bicubic, 
            'ResizeAllLayers': True, 
            'Resolution': 72, 
            'Width': 245, 
            'SharpnessValue': 50, 
            'AdvancedMode': False, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((12,5,0),1)
                }
            })

    # Unsharp Mask
    App.Do( Environment, 'UnsharpMask', {
            'Clipping': 1, 
            'Radius': 1, 
            'Strength': 100, 
            'Luminance': False, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((12,5,0),1)
                }
            })

	
    # Text 'Year Overview'
    App.Do( Environment, 'TextEx', {
            'Visibility': True, 
            'CreateAs': App.Constants.CreateAs.Vector, 
            'Start': (99,280), 
            'TextFlow': App.Constants.TextFlow.HorizontalDown, 
            'TextType': App.Constants.TextType.TextBase, 
            'Matrix': [
                1,
                0,
                23.3321,
                0,
                1.44339,
                -207.817,
                0,
                0,
                1
            ], 
            'AutoKern': True, 
            'Kerning': 0, 
            'Tracking': 0, 
            'Leading': 0, 
            'Font': u'Arial Black', 
            'PointSize': 26, 
            'Italic': False, 
            'Bold': False, 
            'Underline': False, 
            'Strikethru': False, 
            'AntialiasStyle': App.Constants.AntialiasEx.Smooth, 
            'WarpText': True, 
            'SetText': App.Constants.Justify.Center, 
            'Fill': {
                'Color': (255,0,0), 
                'Pattern': None, 
                'Gradient': None, 
                'Texture': None, 
                'Art': None, 
                'Identity': u'Material'
                }, 
            'Stroke': {
                'Color': (255,255,0), 
                'Pattern': None, 
                'Gradient': None, 
                'Texture': None, 
                'Art': None, 
                'Identity': u'Material'
                }, 
            'LineWidth': 1, 
            'LineStyle': {
                'Name': u'', 
                'FirstCap': (u'Butt',0.25,0.25), 
                'LastCap': (u'Butt',0.25,0.25), 
                'FirstSegCap': (u'',0.25,0.25), 
                'LastSegCap': (u'',0.25,0.25), 
                'UseSegmentCaps': False, 
                'Segments': None
                }, 
            'Join': App.Constants.JointStyle.Miter, 
            'MiterLimit': 10, 
            'Characters': u'Year Overview', 
            'Strings': None, 
            'TextTarget': (0,0,[1],True), 
            'PathTarget': None, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((12,5,0),1)
                }
            })

    # Text with the year
    App.Do( Environment, 'TextEx', {
            'Visibility': True, 
            'CreateAs': App.Constants.CreateAs.Vector, 
            'Start': (96,117), 
            'TextFlow': App.Constants.TextFlow.HorizontalDown, 
            'TextType': App.Constants.TextType.TextBase, 
            'Matrix': [
                1.04872,
                0,
                23.1389,
                0,
                1.48454,
                -89.4746,
                0,
                0,
                1
            ], 
            'AutoKern': True, 
            'Kerning': 0, 
            'Tracking': 0, 
            'Leading': 0, 
            'Font': u'Arial Black', 
            'PointSize': 44, 
            'Italic': False, 
            'Bold': False, 
            'Underline': False, 
            'Strikethru': False, 
            'AntialiasStyle': App.Constants.AntialiasEx.Smooth, 
            'WarpText': True, 
            'SetText': App.Constants.Justify.Center, 
            'Fill': {
                'Color': (255,0,0), 
                'Pattern': None, 
                'Gradient': None, 
                'Texture': None, 
                'Art': None
                }, 
            'Stroke': {
                'Color': (255,255,0), 
                'Pattern': None, 
                'Gradient': None, 
                'Texture': None, 
                'Art': None
                }, 
            'LineWidth': 1, 
            'LineStyle': {
                'Name': u'', 
                'FirstCap': (u'Butt',0.25,0.25), 
                'LastCap': (u'Butt',0.25,0.25), 
                'FirstSegCap': (u'',0.25,0.25), 
                'LastSegCap': (u'',0.25,0.25), 
                'UseSegmentCaps': False, 
                'Segments': None
                }, 
            'Join': App.Constants.JointStyle.Miter, 
            'MiterLimit': 10, 
            'Characters': myyear, 
            'Strings': None, 
            'TextTarget': (0,0,[2],True),
            'PathTarget': None, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((12,5,0),1)
                }
            })


    # Layer Properties
    App.Do( Environment, 'LayerProperties', {
            'General': None, 
            'BlendRanges': None, 
            'Path': None, 
            'ArtMediaTexture': None, 
            'Effects': {
                'Enabled': True, 
                'DropShadow': {
                    'Enabled': True, 
                    'Color': (0,0,0), 
                    'Size': 0.65, 
                    'Opacity': 1, 
                    'OffsetX': 0.178571, 
                    'OffsetY': -0.25
                    }, 
                'InnerGlow': {
                    'Enabled': False, 
                    'Color': (255,255,255), 
                    'Size': 0.3, 
                    'Opacity': 0.5
                    }, 
                'OuterGlow': {
                    'Enabled': False, 
                    'Color': (255,255,255), 
                    'Size': 0.43, 
                    'Opacity': 0.8
                    }, 
                'Bevel': {
                    'Enabled': False, 
                    'Color': (255,255,255), 
                    'Size': 0.1, 
                    'Opacity': 0.5, 
                    'LightX': -0.5, 
                    'LightY': 0.5, 
                    'LightZ': 0.5
                    }, 
                'Emboss': {
                    'Enabled': False, 
                    'Size': 0.1, 
                    'Opacity': 0.5, 
                    'LightX': -0.5, 
                    'LightY': 0.5, 
                    'LightZ': 0.5
                    }, 
                'Object': {
                    'Enabled': True, 
                    'Opacity': 1
                    }, 
                'Reflection': {
                    'Enabled': False, 
                    'Size': 0.5, 
                    'Opacity': 0.5, 
                    'Axis': 0
                    }
                }, 
            'BrightnessContrast': None, 
            'ChannelMixer': None, 
            'ColorBalance': None, 
            'CurveParams': None, 
            'HSL': None, 
            'Threshold': None, 
            'Levels': None, 
            'Posterize': None, 
            'Overlay': None, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((12,5,0),1)
                }
            })


    # AddBorders
    App.Do( Environment, 'AddBorders', {
            'Bottom': 1, 
            'Left': 1, 
            'Right': 1, 
            'Symmetric': True, 
            'Top': 1, 
            'Color': (0,0,0), 
            'DimUnits': App.Constants.UnitsOfMeasure.Pixels, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((12,5,0),1)
                }
            })

